Flutter macOS WebView(3.24 后)

WebView 是客户端 App 开发中经常使用的组件。对于 Flutter 开发,在移动端下对 WebView 有较好的支持。

在 Flutter 中集成 WebView,需要基于 Flutter 的 PlatformView 机制。PlatformView 是一种将平台原生的视图嵌入到 Flutter 布局中的技术。

在桌面场景(Windows/macOS/Linux)下,PlatformView 机制长期处于缺位状态,这导致了在桌面端下,WebView 也是长期缺失的。

随着 Flutter 3.24 版本的发布,macOS 下的 PlatformView 实现完成了,这就代表 Flutter 在 macOS 下能使用 WebView 了。

目前,macOS 下的 WebView 实现仍处于早期阶段,尚未正式发版,在本文中,我们使用 webview_flutter 库的未发布分支,进行前瞻体验。


stuartmorgan/packages

stuartmorgan 向 packages 中提交了一个 PR,为 webview_flutter 提供了 macOS 下的实现。该提交是早于 Flutter 3.24 的,只是在 3.24 之前,macOS 下 PlatformView 的支持还不完整,直到 3.24 发布才变得可用。

webview_flutter 官方库还未正式支持 macOS,因此我们只能使用 stuartmorgan/packages 的 fork 版本。具体方法为:

  1. clone stuartmorgan/packages
  2. 切换到 webview-macos 分支
  3. 在本地项目中,按照本地路径方式,引用依赖
webview_flutter_wkwebview:
  path: /path/to/stuart-packages/packages/webview_flutter/webview_flutter_wkwebview

Demo

使用方式可参见 stuartmorgan/packages 的 example,还是基于 webview_flutter 的统一接口(webview_flutter_platform_interface),因此使用方式与移动端是一致的。

在我电脑上的运行效果如下:

截屏2024-08-18 13.16.37.png

网络资源


本文作者:Maeiee

本文链接:Flutter macOS WebView(3.24 后)

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!